#include <buola/buola.h>

#if BUOLA_PLATFORM_LINUX

#include <buola/cv/io/cwebcam.h>

#include "cwebcamdriver.h"

namespace buola { namespace cvi {

CWebCam::CWebCam(const io::CURI &pDevice)
    :   mDevice(get_webcam_driver().Device(pDevice))
    ,   mStarted(false)
{
    mDevice->sImage.Connect(sImage);
}

CWebCam::~CWebCam()
{
    if(mStarted)
        mDevice->Stop();
}

void CWebCam::Start()
{
    if(!mStarted)
    {
        mDevice->Start();
        mStarted=true;
    }
}

void CWebCam::Stop()
{
    if(mStarted)
    {
        mDevice->Stop();
        mStarted=false;
    }
}

img::CImage_rgb8 CWebCam::GetOne()
{
    return mDevice->GetOne();
}

/*namespace cvi*/ } /*namespace buola*/ }

#endif